1. Field of the invention
The present invention relates to a picture coding method and a picture coder, and more particularly to an improvement in the refreshment function preventing a decoding error from affecting a plurality of continuous pictures.
2. Description of the prior art
Moving-picture data is compressed to reduce redundancy when sent over a digital communication network. In general, a standardized moving picture coding system (for example, a moving picture coding system in accordance with the ITU-T/H. 261 or MPEG2 algorithm) combines two coding methods: a method in which temporal redundancy is reduced by coding only the differences between two consecutive frames (hereinafter called inter-frame compression mode coding or INTER mode coding) and a method in which spatial redundancy is reduced by performing orthogonal transformation on a picture (hereinafter called intra-frame compression mode coding or INTRA mode coding) rather than coding the differences between two frames.
A standardized moving picture coding system, such as ITU-T/H. 261 or MPEG2, divides a unit of image data (frame) into a plurality of partitions each of equal size (for example, 16.times.16 pixels; in the following discussion, this partition is called a macro block), and performs coding on one macro block at a time. The system combines several coded macro block groups into another unit (for example, a unit separated by a dotted line in FIGS. 2(a) and 2(b) inserts a synchronization code word between each two consecutive macro block groups to establish the synchronization of variable-length coding. This type of unit (macro block group) is called a GOB (Group of Block) in ITU-T/H.261 or a slice in MPEG2. In the rest of this specification, this unit is called a slice.
The synchronization code word, provided for each slice in compressed data, limits the effect of a data error or a data loss on that slice only. In other words, though a slice cannot be decoded if a data error or a data loss occurs in that slice, the synchronization code word enables the subsequent slices to be decoded.
However, a data error or a data loss, which may occur in compressed moving-picture data coded in the INTER mode, significantly distorts the picture. In the INTER mode in which only the differences between the preceding frame and the current frame are coded, the distortion is propagated through the subsequent frames. For example, if there is no error in compressed data, the picture is decoded as shown in FIG. 2(a). On the other hand, if an error occurs, for example, in the fourth slice and, as a result, a part of the second frame cannot be decoded, the error is propagated not only in the second frame but also through the third and the following frames.
To prevent a distortion caused by an error (degraded picture quality) from being propagated through the subsequent frames, the coder regularly forces intra-frame compression mode coding (INTRA mode coding) in which a preceding frame is not referenced. This type of forced INTRA mode coding, initiated by the coder in this manner, is called refreshment. Refreshment is done on a slice basis (intra-slice refreshment) or on a frame basis (intra-frame slicing), as described in Reference 1. Refreshment is also done on a macro block basis although the name of the literature describing this method is not given here.
Reference 1: Yutaka Machida and Takeshi Ikutake "ATM Picture Coding Method with Cell Discard Tolerance", 1992 Picture Coding Symposium.
FIG. 3 illustrates traditional intra-slice refreshment. During intra-slice refreshment, a given number of slices (two slices in the figure) are refreshed cyclically within a frame, as shown in FIG. 3. FIG. 4 illustrates traditional refreshment on a macro block basis. During macro-block-basis refreshment, a given number of macro blocks (three slices in the figure) are refreshed cyclically within a frame, as shown in FIG. 4.
However, traditional refreshing has the problems described below whether refreshment is done on a frame basis, slice basis, or macro block basis.
(1) INTER mode coding, in which only the inter-frame differential signals for the changes between two consecutive frames are coded, provides coding efficiency better than that of INTRA mode coding. And, INTRA mode coding that is performed for refreshment a picture partition (refreshment unit) involves an amount of coding larger than that in INTER mode coding. Therefore, refreshment which is done at the sacrifice of large amounts of coding must be able to guarantee better picture quality.
When an error or a data loss is found in compressed data, data in the corresponding partition in a frame that was decoded correctly is usually used. For a partition containing a still picture, good quality is guaranteed even when a data error or data loss is found and therefore no refreshment is needed.
However, a traditional refresh method has refreshed the partitions of a frame cyclically or a frame itself, and refreshed data (INTRA mode coding) regardless of whether it is a moving picture or still picture. That is, the traditional method has refreshed all the pictures including those that guarantee good picture quality even if a data error or data loss occurs (for example, still pictures), thus resulting in additional coding and reduced transmission efficiency.
(2) When a data error or a data loss is found in compressed data in a moving-picture area as shown in FIG. 2(b), the picture quality is significantly reduced. Therefore, it is recommended that the propagation of reduced picture quality be stopped as soon as possible and that the refresh cycle be as short as possible. However, this solution is not practical because a short refresh cycle increases the amount of coding to be sent.
Thus, a moving-picture area degraded by a data error or data loss is not corrected until it is refreshed. In some cases, the degraded moving picture is incorrect for a long time.